Adaptive virtual keyboard for handheld device

ABSTRACT

In various embodiments, the size, shape, and arrangement of keys on a virtual keyboard may be determined based on touchscreen contacts made by the user. Further, the actual contact patch made by the user may be analyzed to interpret which point of contact was intended, and other factors such as spelling and context may also be considered. These factors may be determined based on a calibration session and/or on continuing inputs during operation of the keyboard, and applied to future operational interpretations of the touchscreen contacts.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a divisional of U.S. patent application Ser. No.13/376,620 filed Dec. 7, 2011; which is a national phase ofInternational Patent Application No. PCT/US2009/069931 filed Dec. 31,2009; which claims priority from U.S. Provisional Patent Application No.61/187,520 filed Jun. 16, 2009. These applications are incorporatedherein by reference in their entirety.

BACKGROUND

As multi-purpose wireless devices become too small for standardmechanical/electronic keyboards, virtual keyboards are increasing beingused as a primary input device by displaying an arrangement of keys on atouchscreen. The user enters a keystroke by simply touching the screenwith a fingertip at the location where the desired key is displayed.Because of the small size and hand-held nature of these devices, manyusers typically use only their thumbs to enter the data. However, mostof these virtual keyboards arrange the keys in either a rectangularmatrix of keys, or in the standard QWERTY format. The linear nature ofthe rows in such arrangements makes them ill suited for used by thethumbs. Specifically, to move his thumb along the length of a row ofkeys or along the height of a column of keys, a user must articulate theseveral joints of his thumb in a relatively unnatural manner. Indeed,becoming accustomed to such arrangements can require extensiveproprioceptive development from the user. While the designs of somephysical keyboards on multi-purpose wireless devices do provide improvedergonomics (compared to a rectangular matrix of keys), the degree of towhich the ergonomics can be tailored to a particular individual remainslimited. Further, such designs do not account for the fact differentusers have different sizes of hands, fingers and thumbs, so a keyboardthat is properly sized for one user may be more difficult for anotheruser.

BRIEF DESCRIPTION OF THE DRAWINGS

Some embodiments of the invention may be understood by referring to thefollowing description and accompanying drawings that are used toillustrate embodiments of the invention. In the drawings:

FIG. 1 shows a multi-function handheld user device, according to anembodiment of the invention.

FIG. 2 shows a virtual keyboard configured for two-handed operation,according to an embodiment of the invention.

FIG. 3 shows a flow diagram of a method of calibrating the size of thekeyboard to the individual user, according to an embodiment of theinvention.

FIG. 4 shows a flow diagram of a method for an initial contact patchcalibration sequence, according to an embodiment of the invention.

FIG. 5 shows a flow diagram of a method of adaptively interpretingkeystrokes, according to an embodiment of the invention.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth.However, it is understood that embodiments of the invention may bepracticed without these specific details. In other instances, well-knowncircuits, structures and techniques have not been shown in detail inorder not to obscure an understanding of this description.

References to “one embodiment”, “an embodiment”, “example embodiment”,“various embodiments”, etc., indicate that the embodiment(s) of theinvention so described may include particular features, structures, orcharacteristics, but not every embodiment necessarily includes theparticular features, structures, or characteristics. Further, someembodiments may have some, all, or none of the features described forother embodiments.

In the following description and claims, the terms “coupled” and“connected,” along with their derivatives, may be used. It should beunderstood that these terms are not intended as synonyms for each other.Rather, in particular embodiments, “connected” is used to indicate thattwo or more elements are in direct physical or electrical contact witheach other. “Coupled” is used to indicate that two or more elementsco-operate or interact with each other, but they may or may not be indirect physical or electrical contact.

As used in the claims, unless otherwise specified the use of the ordinaladjectives “first”, “second”, “third”, etc., to describe a commonelement, merely indicate that different instances of like elements arebeing referred to, and are not intended to imply that the elements sodescribed must be in a given sequence, either temporally, spatially, inranking, or in any other manner.

Various embodiments of the invention may be implemented in one or anycombination of hardware, firmware, and software. The invention may alsobe implemented as instructions contained in or on a computer-readablemedium, which may be read and executed by one or more processors toenable performance of the operations described herein. Acomputer-readable medium may include any mechanism for storinginformation in a form readable by one or more computers. For example, acomputer-readable medium may include a tangible storage medium, such asbut not limited to read only memory (ROM); random access memory (RAM);magnetic disk storage media; optical storage media; a flash memorydevice, etc.

Various embodiments of the invention relate to a configuration ofvirtual keys on the touch-screen of a virtual keyboard. Rather thanbeing arranged in straight horizontal rows, the keys may be arranged inarcs that are conveniently reached by the user's thumb(s) when thedevice is held in the user's hand(s). In some embodiments, the placementof the keys may be customized to fit the individual user's thumb and/orpersonal preferences. In some embodiments, adaptive sensing may be usedto compensate for the contact surface of the user's thumb beingoff-center from a key and/or being larger than the key.

FIG. 1 shows a multi-function handheld user device, according to anembodiment of the invention. The illustrated device 110 is shown with atouchscreen 120 for displaying information to the user and receivingtactile inputs from the user when the user touches the screen at one ormore particular locations. Three hard buttons are also shown above thedisplay. Other physical buttons, sensors, features, etc. may also beincluded but are not shown to avoid excessive clutter in the drawing.Within the context of this document, ‘hard’ buttons are so calledbecause they are physical buttons, permanently located in specificareas. But the device may also contain ‘soft’ buttons, each consistingof an image on the touch-sensitive display screen, denoted herein as atouchscreen. When the user touches a soft button, the device may sensethat touch and perform whatever function is associated with that softbutton. The term ‘key’ is used in this document to denote a soft buttonthat represents an individual key on a virtual keyboard shown on thetouchscreen.

Although the illustrated device 110 is depicted as having a particularshape, proportion, and appearance, with buttons located in particularlocations, this is for example only and the embodiments of the inventionmay not be limited to this particular physical configuration. Forexample, in some embodiments various features may be located elsewhereon the same side or on different sides of the device. In someembodiments the overall shape of the device 110 may be different thanshown.

Device 110 may also include functionality for wireless communication,for various visual, audio, and physical inputs, and for various visual,audio, and physical outputs that are not specifically described herein.In some embodiments, the device may use this functionality in differentways depending on which mode it is in.

Virtual Keyboard with Tiered Arcs

FIG. 1 also shows a virtual keyboard on the touchscreen display. In avirtual keyboard, each key on the keyboard is implemented as a softbutton on the touchscreen. When the user touches a particular key withhis/her thumb (or finger, or stylus, or other object), the device 110senses that touch, determines where on the screen the touch occurred,determines which key is associated with that location, and interpretsthis touch as a keystroke of the selected key. In some embodiments, ahysteresis effect may be used in which the user must remove his fingerfrom the key for a minimum amount of time and touch the key again beforea second touch of that key will be registered.

In this example, the keys on the keyboard are arranged in three rowsthat each follow an arc shape. These rows are positioned for ease ofreach by the user's thumb. Because of the configuration of the humanthumb, the arcs may not be perfectly circular, but rather each arc mighthave a variable rate of curvature. For this reason, the terms ‘circular’and ‘concentric’ are not used to describe them here, although in someinstances the arcs might be circular and/or concentric. These arcs aredescribed herein as ‘tiered’ arcs because each arc has a pivot point(the pivot point of the user's thumb) that is in approximately the sameplace, and each arc has a similar shape, with each arc beingapproximately the same distance from the next adjacent arc throughoutthe length of those arcs, when measured radially from the pivot point.Ease of reach by the user's thumb, rather than a rigid geographicalshape, may be the guiding principle when determining the curvature andlocation of each arc.

The example of FIG. 1 shows three rows of keys, but other embodimentsmay have one, two, four, or more rows. The keys are shown the same sizein all rows, but in some embodiments, some keys may be larger or smallerthan others. For example, the inner row may have smaller keys than theouter row. Not only does this allow more keys to be placed on the innerrow, which has less room for keys, but it also recognizes that the useris likely to touch keys on the inner row with the end of his thumb,which presents a smaller touch area than is felt by keys on the outerrow, which are touched with the thumb in an extended position. Theillustrated example also shows that the three rows are spaced the samedistance from each other, but other embodiments may differ. Again, themechanics and flexibility of the human thumb may determine this spacing.

Each key is shown with a somewhat rectangular shape, but the soft keysmay be displayed with any convenient shape. In some embodiments,different keys may have different shapes to provide addition informationto the user (for example, a square shape for upper case, and a roundshape for lower case). Different colors may also be used to denoteadditional information about that key. Each key is shown labeled withthe character it represents. These labels are all shown oriented withrespect to the bottom of the device (for easy reading by the user) butother embodiments may orient the label with respect to the radial centerof the arcs, or some other definable reference point. In someembodiments, the displayed character will be shown as upper- orlower-case to indicate whether the upper- or lower-case version of thecharacter is represented by that key.

In some embodiments, whenever a key touch is registered by the device,the symbol represented by the key will be shown in an enlarged versionto provide positive feedback to the user, and the position of thisenlarged key may be shifted so that it won't be obscured by the user'sthumb. In the example of FIG. 1, the user touches the ‘M’ key (which ishidden from view by the user's thumb), and an enlarged version of the‘M’ key is shown just beyond the user's thumb, temporarily overlayingwhatever other keys are located there. Different color, style, shape,etc. may also be used to distinguish this touch indicator from theremainder of the keys.

The example of FIG. 1 shows particular characters assigned to particularkey positions, but this is for example only. Other embodiments mayassign characters to key positions in any desirable arrangement, such asQWERTY, Dvorak, etc. In some embodiments, the key assignments may beprogrammable.

Because the configuration shown in FIG. 1 is designed for one-handedoperation, and the keyboard is therefore limited to the space reachableby a single thumb, there may not be enough space to simultaneouslyrepresent all the characters that he user wants to type. To compensatefor this, all or a portion of the key positions may be reassigned torepresent other characters, and new labels representing the newcharacters may be produced on the touchscreen for those keys. Thischange may be initiated in any convenient manner, such as but notlimited to: 1) touching one of the keyboard keys assigned to thisfunction, 2) touching a particular soft key outside the keyboard area,3) pressing a hard button, 4) dragging the thumb along a substantialpart of an arc, 5) etc.

In some embodiments, the full available keyboard may be thought of as anapproximate wheel with four quadrants, with each quadrant having aseparate set of characters, and with only one quadrant visible on thetouch screen at a time (or two quadrants visible for the two-handedoperation described later). The user may then call up whichever quadranthe wants displayed. For example, one quadrant might contain keys withletters, another quadrant contain keys with numbers and punctuationmarks, another quadrant contain keys representing pictures, icons,letterheads, etc., that the user likes to insert into documents, and thefourth quadrant contain commonly used phrases, sentences, paragraphs,etc. Of course, more or fewer than four quadrants may also be used,since this is a virtual concept and is not constrained to an actualphysical circle.

The keyboard configuration shown in FIG. 1 is designed for right-handedoperation by making the rows of keys concentric about the lowerright-hand corner. By making the rows of keys concentric about the lowerleft hand corner, the device may be suitable for left-handed operation.The illustrated keyboard is also shown configured for verticaloperation, i.e., the long side of the display is vertical. Someembodiments may operate with a horizontal operation, i.e., the long sideof the display is horizontal. In some embodiments, the right/left handedconfiguration and/or the vertical/horizontal operation is selectable bythe user. In some embodiments, these configurations may be automaticallyselected by the device (e.g., sensing gravity to select thevertical/horizontal operation, and sensing which part of the display istouched by the user's thumb to select right- or left-handed operation).

FIG. 2 shows a virtual keyboard configured for two-handed operation,according to an embodiment of the invention. The primary differencebetween this two-handed operation and the one-handed operation of FIG. 1is that there are two portions to the virtual keyboard, one configuredfor operation with the right thumb and the other configured foroperation with the left thumb. More keys, and therefore more characters,can be simultaneously displayed with this configuration, as comparedwith the one-handed configuration of FIG. 1. The two keyboard portionsmay have the same or a different number of rows, the same or a differentnumber of keys in each row, different spacing, etc. In some embodiments,the assignment of characters to the individual keys may be switchedbetween the left and right areas for the convenience of users that havea left- or right-handed preference. All the same features, techniques,choices, etc. that are available for one-handed operation may also beapplied to this two handed operation, and in some embodiments may beapplied separately for each portion of the keyboard. In some embodimentsthe user may manually select either one- or two-handed operation. Insome embodiments, the device may automatically select one- or two-handedoperation, based on some automatically sensed criteria, such as deviceorientation or sensing touches on both sides of the touchscreen.

FIG. 3 shows a flow diagram of a method of calibrating the size of thekeyboard to the individual user, according to an embodiment of theinvention. In flow diagram 300, at 310 the calibration process may beinitiated by the user, or started automatically based on somepre-determined criteria, such as but not limited to: a) powerup of thedevice, b) creation of a new user account, c) changing the font size ofthe characters on the virtual keyboard, d) etc. The user may then beprompted at 320 to draw an arc with his thumb on the touchscreensurface, with his hand in its normal data-entry position. This arc maybe referred to as a ‘calibration arc’ because its purpose is tocalibrate the location of a keyboard row so the keys on that row will beat a convenient position for the user's thumb. In some embodiments, thisarc will be visible on the touchscreen after being drawn by the user,but other embodiments may not display the calibration arc.

In either case, the location of this arc on the display screen may berecorded at 330. This location may be used to determine where thecorresponding row of keys will be placed on the screen. In someembodiments, the user may be prompted to enter more than one arc. Forexample, to calibrate the device for two-handed keyboard operation, theuser may be prompted to draw separate arcs, one with each thumb. If morethan one row is to be calibrated, the user may be prompted to draw amiddle arc, an outer arc, and/or an inner arc. In some embodiments, theuser may be prompted to retrace the same arc more than once, so thedevice can determine an average position for that arc. Any or all ofthese options may be accommodated with the operations at 320-330-340.

In some embodiments, the arc for only one row of keys is input by theuser's thumb, and the other arcs for the other rows for that thumb areautomatically located with respect to that arc. In such a case, thelocations of the other arcs are determined at 350. In one embodiment,the user may have been prompted to draw an arc with the thumb in amid-position, neither fully extended nor fully retracted, and the otherrows placed in larger and smaller arcs with respect to that one. Inanother embodiment the user may draw an arc with the thumb fullyextended to mark the location of the outer row of keys, with the otherarcs created inside that one. Conversely, the user may draw an arc withthe thumb fully retracted to mark the location of the inner row of keys,with the other arcs created outside that one.

Once the arc locations have been determined, at 360 the device mayassign the position of each key along each arc, with each arcrepresenting a row of keys. In some embodiments, a predetermined spacingbetween adjacent keys on the same row may be assumed. In otherembodiments, the spacing may vary. For example, if the calibrationprocess was able to determine the width of the user's thumbprint invarious locations, this information may be used to decide the spacebetween keys. A wide thumb print may lead to a wider spacing betweenkeys, to reduce the chance of touching multiple keys in a manner thatcould lead to error.

At 370, the various characters (letters, numerals, punctuation marks,etc.) may be assigned to the various key positions on the differentrows. In some embodiments, this arrangement may be predetermined. Inother embodiments, this arrangement may be customized, based on variouscriteria. For example, the most frequently used characters may be placedon the middle row, to reduce thumb travel. The next most frequently usedcharacters may be placed on the outer row, since extending the thumb isgenerally considered easier than retracting the thumb. Commonlyoccurring sequences of characters (e.g., digraphs) can be orderedsequentially along an arc to facilitate a more natural ‘inward sweep’motion of the thumb. For two-handed operation, commonly occurringsequences can be alternated between the two thumbs to facilitatealternating thumb action. Other considerations may also be used toassign characters to key positions. In some embodiments, the user may beable to assign characters to specific key positions. At 380, the devicemay generate the completed keyboard on the display based on thesecharacter position assignments, and exit the calibration sequence at390. By virtue of these and other features, various embodiments of theinvention may provide a virtual keyboard that is well suited to thenatural motion of the user's thumb(s) and is customized tocharacteristics and preferences of the user. The invention may therebyimprove the ease, speed, and accuracy with which the user can enter texton the device.

Due to the close spacing of the keys, and the relatively large contactarea of the user's thumb, it is likely that the user will frequentlycontact more than one key simultaneously. Various approaches may betaken to reduce the negative effects of this by interpreting which keythe user intended to touch. Some approaches involve interpreting thearea contacted by the user's thumb, while others are based on contextand repetitive errors. Both approaches are described below.

Contact Patch Adjustments

The ‘contact patch’ is the area in which the user contacts thetouchscreen when attempting to touch a key or other icon. If a stylus isused, the contact patch may be very small and well-defined in shape. Ifthe user's fingertip is the instrument of contact, the contact patch maybe somewhat larger, and the size may vary depending on the pressurewhich the user applies with that finger. The size and shape of thecontact patch may both vary depending on the angle with which the fingercontacts the touchscreen. If the thumb is used as the instrument ofcontact, the same considerations apply, but the size is likely to beeven larger than with the fingertip, due to the thumb's generallygreater cross section, and the shape and size may vary considerablydepending on the contact angle of the thumb, which may generally beshallower than the contact angle of a finger.

Since the contact patch may be even larger than the key on thetouchscreen that is being touched, the sensing device may have tointerpret the sensor information and determine a point at which thetouch was intended. Within this document, this point is called the‘active point’, which may or may not be the centroid (the geographicalcenter) of the contact patch. These calculations may be complicated bythe fact that the size and shape of the contact patch varies with: 1)which row the key is on (which affect the angle of the thumb), and 2)whether the user is entering data with a one-handed or two-handedkeyboard operation (the position of the hand, and therefore the angle ofthe thumb, may generally be different in a two-handed operation than itis in a one-handed operation). Further, the actual contact patch and/orthe actual centroid of that contact patch may be different than thecontact patch and centroid as perceived by the user.

In some embodiments the device may assume that a particular row of keyswill experience an elliptical contact patch with the ellipse oriented ina particular direction, while a different row of keys may experience anelliptical contact patch with the ellipse oriented in a differentdirection, or even a circular contact patch. These assumptions may betaken into consideration when calculating the active point. Assumptionsmade about a contact patch for a middle row may be interpolated betweenassumptions made about contact patches for the inner and outer rows.These are only examples; the actual assumptions may vary from this basedon actual experience with the user and/or previous studies based on thegeneral population.

As an example of user perception, for some rows the user may perceivethe active point to be near the end of the thumb tip, and the device maymove the active point away from the centroid to accommodate thisperception.

Since the angle of the thumb, and therefore the shape of the contactpatch, is generally different during two-handed operation than duringone-handed operation, the device may sense which mode of operation isbeing currently used, and adjust the active point calculationsaccordingly. For example, the device may assume a two-handed operationis being used if a two-handed keyboard is displayed on the touchscreen.Or the device may infer the same by sensing contact in both parts of thescreen. In another embodiment, the device may assume one-handedoperation if the device is being held in a vertical orientation (theshort dimension is horizontal), and two-handed operation if the deviceis being held in a horizontal orientation (the long dimension ishorizontal), based on accelerometers or other sensors. However, the usermay be able to manually override these assumptions if desired.

In some embodiments, the type of instrument being used to contact thescreen may be inferred by the device based on the size and shape of thecontact patch. If the contact patch is relatively large, the device mayassume the thumb is being used and adjust the active point accordingly.If the contact patch is smaller, the device may assume that a finger isbeing used, and adjust the active point based on that assumption. If thecontact patch is very small, the device may assume a stylus is beingused, and not make any adjustments.

Regardless of the type of adjustments being made, in some embodimentsthese adjustments may be pre-defined, either based on a standard set ofparameters, or based on the results of one or more calibration sessions.In other embodiments, the adjustments may be continually or frequentlymodified, based on the recent history of operation. In some embodiments,both initial calibration and ongoing adjustments may be incorporated.

FIG. 4 shows a flow diagram of a method for a contact patch calibrationsequence, according to an embodiment of the invention. The method offlow diagram 400 may be used to pre-calibrate the device to a particularuser's characteristics. Operations 430-460 may also be used for ongoingadjustments during normal operation of the virtual keyboard. Afterentering the contact patch calibration sequence at 410, at 420 thedevice may prompt the user to press a selected key. In some embodiments,the keyboard (e.g., the keyboard generated by the keyboard calibrationsequence of FIG. 3) may be fully displayed, but in other embodiments thekey may be shown in isolation in the same location it will occupy inthat keyboard.

When the user touches the selected key, the device determines relevantinformation on the contact patch at 430. Based on readings from theindividual contact sensors in the touchscreen, the device may determinethe size and shape of the contact patch, and in some embodiments mayrecord the contact readings for the different areas of the contact patchat 440. At 450 the device may determine the centroid for the contactpatch, i.e., the geometric center of the contact patch. In someprocedures, the centroid may be considered the initial active point forthe contact patch, but may then be relocated based on other factors,such as those previously described. In some embodiments, the touchscreenmay provide the device with only a calculated centroid position for thecontact patch, rather than providing multiple contact sensor readingsand having the device calculate the centroid.

At 460, the device may then return to 420 to calibrate the contact patchfor another key on the keyboard. In some embodiments this process may berepeated for every key on the keyboard. In other embodiments, only somekeys or touchscreen locations may be used in this calibration procedure,and calibration data for the rest may be interpolated from the resultsof those keys. In some embodiments, the same key may be calibrated morethan once, to obtain an average of the readings for that key. After allthe selected keys or areas of the touchscreen have been calibrated,either directly or through interpolation, the calibration sequence maybe exited at 470.

Keyboard Adaptation

When more than one key is simultaneously touched by the user, the devicemay use various techniques to determine which key the user intended totouch. Some techniques are contextual in nature, and may not beperformed immediately. For example, the device may compare the multiplecontacted characters to the rest of the word to determine whichcharacter forms a real word, based on a spelling dictionary. If morethan one of the possible characters forms a real word, the context ofthe sentence may be examined to select which word was most likelyintended, and therefore which character was intended.

In some cases, there may be a previous history of striking this samecombination of adjacent keys, when a particular one of those keys wasusually intended, and this history may be taken into account.

If the touchscreen provides local pressure measurements, the keyreceiving the highest pressure from the thumb may be assumed to be theintended key. Alternately, the different pressure measurements for thedifferent contacted keys may be multiplied by a probability factor,based on predictive text analysis, to determine which key was mostlikely intended.

The ‘hot spot’, i.e., the spot that the device considers the center of akey, may be shifted if the user consistently misses the hot spot in thesame direction. For example, if the user consistently types below thehot spot of the ‘s’ key, the device may move the hot spot of the ‘s’ keydownward. Determining that the user consistently misses in the samedirection may be determined in various ways. For example, localizedpressure sensing at various points in the contact patch may be used todetermine that the highest pressure point in the contact patchconsistently misses the center of the key in the same direction. Inanother example, it may be determined that the centroid or active pointconsistently misses the key or its hotspot in the same direction.

In another example, words with that particular character may befrequently misspelled by substituting the same adjacent character. Thismay be verified, for example, when the user either manually correctssuch misspellings, and/or when the user accepts automatic spellingcorrections. In some embodiments, the displayed position of the key mayremain unchanged, even though the hotspot for that key is relocated. Inother embodiments, the displayed position of the key may be moved sothat the new hotspot is centered within the displayed key. In someembodiments, the device may attempt to differentiate between simplytyping the wrong character (e.g., none of the contacted characters spella word, or maybe dyslexic letter inversion frequently occurs), anderrors due to missing the hotspot, and adjust the hotspot only inresponse to the latter.

FIG. 5 shows a flow diagram for a method of adaptively interpretingkeystrokes, according to an embodiment of the invention. In flow diagram500, at 510 the device may receive input from the touchscreen indicatinga key has been touched, and determine the centroid of the contact patch.In some embodiments this input may comprise readings from multiplecontact sensors that define the contact patch, which may then beconverted to the location of the centroid. In other embodiments, theinput from the touchscreen may simply represent the location of thecentroid, as determined by the touchscreen logic.

In either case, the active point may be determined at 520 based on thelocation of the centroid and on previously determined differencesbetween the centroid and active point for that part of the touchscreen.If the intended key is obvious based on the location of the activepoint, at 535 the device may assume that key was intended. However, ifthe active point is sufficiently close to multiple keys to causeuncertainty as to which key was intended, as determined at 530, thedevice may examine the hotspots of those multiple keys at 540. At 550,the device may determine the probability that each of these keysrepresents the correct key, based on various criteria. A significantcriteria may be the previous history with this same grouping of keys.

Based on these and other considerations, at 560 the device may selectwhich key was most likely intended by the user, and enter that characterinto the typing sequence. At this point it may not be feasible to lookat spelling and context considerations for that particular keystrokebecause the rest of the word or sentence has not been completed. Thedevice may then return to 530 to process more keystrokes. At each passthrough 565, the device may determine if it is finished withspelling/context considerations for that particular keystroke. If it is,it may possibly change the previously chosen key at 570 based on thosefactors.

Once the chosen character and associated key have been finalized, thelessons learned from this process may be incorporated for futureprocessing. For example, at 580 the location of the hotspot for that keymay be adjusted. This information may be recorded for future use at 590.

The foregoing description is intended to be illustrative and notlimiting. Variations will occur to those of skill in the art. Thosevariations are intended to be included in the various embodiments of theinvention, which are limited only by the scope of the following claims.

What is claimed is:
 1. An apparatus, comprising: a handheld electronicdevice including a touchscreen for displaying a virtual keyboard,wherein the device is to: detect a contact patch when the touchscreen istouched by a user; determine an active point for the contact patch;determine a hot spot for each of multiple keys located near the activepoint; select a particular key from among the multiple keys as a keyintended by the user; and include a particular character represented bythe particular key as a character in an ongoing stream of text input bythe user.
 2. The apparatus of claim 1, wherein said selection is basedon at least one criteria selected from a list consisting of: location ofeach of the hotspots with respect to the active point; and a probabilitybased at least in part on a past history of the active point and atleast some of the multiple keys.
 3. The apparatus of claim 1, whereinthe device is to relocate the hot spot for the particular key forsubsequent operations, based at least in part on determinations leadingto the selection of the particular key.
 4. The apparatus of claim 1,wherein the device is further to: detect additional contact patches;select additional keys based on the additional contact patches; includea corresponding character from each of the selected keys into theongoing stream of text until at least a word has been formed; determinethe word is an invalid word; and change the particular character toanother character represented by another of the multiple keys to form avalid word.
 5. The apparatus of claim 4, wherein the device is furtherto move a hot spot for the particular key based at least in part ondeterminations leading to the changing of the particular character.
 6. Amethod, comprising: determining an active point of a contact patch whena touchscreen of a handheld electronic device is touched by a user;determining the active point is near a hot spot for each of multiplekeys on a virtual keyboard on the touchscreen; selecting a particularkey from among the multiple keys as a key intended by the user; andincluding a particular character represented by the particular key as acharacter in an ongoing stream of text input by the user.
 7. The methodof claim 6, wherein said selecting is based on at least one criteriaselected from a list consisting of: location of each of the hotspotswith respect to the contact patch; and a probability based at least inpart on a past history of the multiple keys and corresponding contactpatches.
 8. The method of claim 6, further comprising moving a hot spotfor the particular key based at least in part on determinations leadingto said selecting the particular key.
 9. The method of claim 6, furthercomprising: determining additional active points for additional contactpatches generated by additional touches; selecting additional keys basedon the additional touches; including a corresponding character from eachof the selected additional keys into the ongoing stream of text until atleast a word has been formed; determining the word is an invalid word;and changing the particular character to another character representedby another of the multiple keys to form a valid word.
 10. The method ofclaim 9, further comprising moving a hot spot for the particular keybased at least in part on determinations leading to said changing of theparticular character.
 11. An article comprising a non-transitorycomputer-readable storage medium that contains instructions, which whenexecuted by one or more processors result in performing operationscomprising: determining an active point of a contact patch when atouchscreen of a handheld electronic device is touched by a user;determining the active point is near a hot spot for each of multiplekeys on a virtual keyboard on the touchscreen; selecting a particularkey from among the multiple keys as a key intended by the user; andincluding a particular character represented by the particular key as acharacter in an ongoing stream of text input by the user.
 12. Thearticle of claim 11, wherein said selecting is based on at least onecriteria selected from a list consisting of: a location of each of thehotspots with respect to the contact patch; and a probability based atleast in part on a past history of the multiple keys and correspondingcontact patches.
 13. The article of claim 11, wherein the operationsfurther comprise moving a hot spot for the particular key based at leastin part on determinations leading to said selecting the particular key.14. The article of claim 11, wherein the operations further comprise:determining additional active points for additional contact patchesgenerated by additional touches; selecting additional keys based on theadditional touches; including a corresponding character from each of theselected additional keys into the ongoing stream of text until at leasta word has been formed; determining the word is an invalid word; andchanging the particular character to another character represented byanother of the multiple keys to form a valid word.
 15. The article ofclaim 14, wherein the operations further comprise moving a hot spot forthe particular key based at least in part on determinations leading tosaid changing of the particular character.